Touch-based exploration of maps for screen reader users

ABSTRACT

An electronic device can provide an interactive map with non-visual output, thereby making the map accessible to visually impaired users. The map can be based on a starting location defined based on a current location of the electronic device or on a location entered by the user. Nearby paths, nearby points of interest, or directions from the starting location to an ending location can be identified via audio output. Users can touch a screen of the electronic device in order to virtually explore a neighborhood. A user can be alerted when he is moving along or straying from a path, approaching an intersection or point of interest, or changing terrains. Thus, the user can familiarize himself with city-level spatial relationships without needing to physically explore unfamiliar surroundings.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. Ser. No. 13/605,407, filedSep. 6, 2012, which claims the benefit and priority of U.S. ProvisionalApplication No. 61/657,245, filed on Jun. 8, 2012, which are herebyincorporated by reference in their entirety for all purposes.

BACKGROUND

The present disclosure relates generally to providing maps, via anelectronic device with a touchscreen, that can be utilized by visuallyimpaired users by, e.g., providing non-visual signals to indicatetrajectories of paths and nearby points of interest.

Maps allow users to understand and adjust to unfamiliar areas. Forexample, a map that visually depicts roads' relative positions canenable a user to determine how to commute from a starting location to anending location. Maps can also identify places that may be of interestto a user, such that a user can decide to travel to and stop at anidentified place.

However, maps are typically two-dimensional and visual, therebyproviding limited information to a visually-impaired user. The user'saccess to location information can be even more limited when the user isnot looking for any particular information. For example, whiledirections from a specific starting point to a specific destinationpoint can be spoken, it is difficult to concisely convey general spatialrelationships within an area that have the potential of being ofinterest to the user. Thus, the user can find it difficult or impossibleto obtain a general understanding of streets and places in an unfamiliararea, and the user can feel lost and confused in a new environment.

SUMMARY

Certain embodiments of the present invention provide maps that arepresented using non-visual (e.g., audio or haptic) cues via electronicdevices, such that a user is informed about a path's trajectory, wherepaths intersect, and/or where points of interests are located. Forexample, a map app can be provided via an electronic device. Ageographic starting location can be a current location of the electronicdevice (e.g., determined via Global Positioning Satellite technology) ora location identified by a user (e.g., via a voice command). Thegeographic starting location can be associated with a point on a screenof the electronic device touched by the user. An area surrounding thegeographic starting location can be identified. A user can be informed(e.g., via audio signals) of streets and/or points of interest near thegeographic starting location. The user can then move his finger along astreet, and feedback (e.g., audio cues) can indicate whether the user isbeginning to veer off the street and can identify intersections andpoints of interest “near” the user's finger. Thus, the user can begin toappreciate a spatial layout of the area.

A user can further input a search query, such as a specific address ortype of location (e.g., “library”, “hospital”, or “Starbucks”). The mapapp can identify a destination location in response to the search queryand can indicate to the user how to move from the geographic startinglocation to the destination location. A first portion of the directionscan be spoken. As the user's finger nears completion of the firstportion of the directions, a next portion of the directions can bespoken. For example, the user can initially be directed to move south1.5 miles. After the user's finger moves a corresponding distance alonga corresponding direction on a screen of the electronic device, the usercan be directed to move according to a subsequent direction. Thus, auser can understand how to move to the destination location withoutneeding to actually embark on the commute.

City-level data is therefore provided to a visually impaired user suchthat he can gain an understanding of spatial properties within an area.User input can be used to repeatedly adjust a map's coverage and todetermine what type of information to present to the user (e.g., nearbylocations, directions or intersecting streets). Non-visual feedback notonly can provide indications about nearby streets and locations but canalso assist a user in understanding how to follow a street on the screensuch that the user can understand a trajectory of the street.

These and other embodiments of the invention along with many of itsadvantages and features are described in more detail in conjunction withthe text below and attached figures.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a system for providing map data to visually impairedusers.

FIG. 2 is a simplified block diagram of an implementation of electronicdevice according to an embodiment of the present invention.

FIG. 3 is a flow diagram of a process for using an electronic device tonon-visually convey map data to a user according to an embodiment of thepresent invention.

FIGS. 4A-4B illustrate examples of a map that can be displayed duringoperation of a map app according to an embodiment of the invention.

FIG. 5 is a flow diagram of a process for using an electronic device tonon-visually convey map data to a user according to an embodiment of thepresent invention.

FIGS. 6 and 7 illustrate examples of a map that can be displayed duringoperation of a map app according to an embodiment of the invention.

FIG. 8 is a flow diagram of a process for using an electronic device tonon-visually convey map data to a user according to an embodiment of thepresent invention.

FIG. 9 illustrates an example of operation of map app to identify nearbypoints of interest according to an embodiment of the invention.

FIG. 10 is a flow diagram of a process for using an electronic device tonon-visually convey directions between geographic locations to a useraccording to an embodiment of the present invention.

FIGS. 11A-11B illustrate an example of using map app to non-visuallyconvey directions according to an embodiment of the invention.

FIG. 12 is a flow diagram of a process for using an electronic device toadjust a map presented via a map app based on user input according to anembodiment of the present invention.

FIGS. 13A-13B illustrate an example of an adjustment of a map that canbe made during operation of a map app according to an embodiment of theinvention.

FIG. 14 is a flow diagram of a process for using an electronic device toautomatically and repeatedly track a device and identify nearbygeographical features.

DETAILED DESCRIPTION

Certain embodiments of the present invention provide maps that arepresented using non-visual (e.g., audio or haptic) cues via electronicdevices, such that a user is informed about a path's trajectory, wherepaths intersect, and/or where points of interests are located. Forexample, a map app can be provided via an electronic device. Ageographic starting location can be a current location of the electronicdevice (e.g., determined via Global Positioning Satellite technology) ora location identified by a user (e.g., via a voice command). Thegeographic starting location can be associated with a point on a screenof the electronic device touched by the user. An area surrounding thegeographic starting location can be identified. A user can be informed(e.g., via audio signals) of streets and/or points of interest near thegeographic starting location. The user can then move his finger along astreet, and feedback (e.g., audio cues) can indicate whether the user isbeginning to veer off the street and can identify intersections andpoints of interest “near” the user's finger. Thus, the user can begin toappreciate a spatial layout of the area.

A user can further input a search query, such as a specific address ortype of location (e.g., “library”, “hospital”, or “Starbucks”). The mapapp can identify a destination location in response to the search queryand can indicate to the user how to move from the geographic startinglocation to the destination location. A first portion of the directionscan be spoken. As the user's finger nears completion of the firstportion of the directions, a next portion of the directions can bespoken. For example, the user can initially be directed to move south1.5 miles. After the user's finger moves a corresponding distance alonga corresponding direction on a screen of the electronic device, the usercan be directed to move according to a subsequent direction. Thus, auser can understand how to move to the destination location withoutneeding to actually embark on the commute.

City-level data is therefore provided to a visually impaired user suchthat he can gain an understanding of spatial properties within an area.User input can be used to repeatedly adjust a map's coverage and todetermine what type of information to present to the user (e.g., nearbylocations, directions or intersecting streets). Non-visual feedback notonly can provide indications about nearby streets and locations but canalso assist a user in understanding how to follow a street on the screensuch that the user can understand a trajectory of the street.

FIG. 1 illustrates a system 100 for providing map data to visuallyimpaired users. In this example, a user 105 is walking on a sidewalk 110near Broadway Street, and user 105 is carrying an electronic device 115.Electronic device 115 can include a mobile device, such as a phone,tablet computer, or laptop computer. For example, electronic device 115can be an iPod®, iPhone®, or iPad® device available from Apple Inc. ofCupertino, Calif.

As described in greater detail below, electronic device 115 can includean input component (e.g., a touchscreen) configured to receive inputfrom user 105. Electronic device 115 can also include an outputcomponent configured to provide output to user 105. The output componentcan include a component that can provide output even to visuallyimpaired users 105. For example, electronic device 115 can include amotor that can provide vibration output and/or a speaker 120 that canprovide audio output.

Electronic device 115 can provide information related to a geographicstarting location, such as a current location of electronic device 115or a location entered by user 105. For example, an exemplary audiosignal 125 in FIG. 1 indicates that user 105 is currently at an addressof 315 Broadway Street. Electronic device 115 can further provideinformation detailing how user 105 can interact with electronic device115 in order to receive additional spatial information. For example,audio signal 125 in FIG. 1 indicates that user 105 can touch a screen ofelectronic device 115 for information about nearby locations. Furtherdetails about capabilities of electronic device 115 are provided below.

FIG. 2 is a simplified block diagram of an implementation of electronicdevice 115 according to an embodiment of the present invention.Electronic device 115 can be a mobile electronic device, such as acellular phone, a smartphone, a tablet computer, or any device that auser is likely to carry while moving around and that is capable ofexecuting a map app as described herein. Electronic device 115 caninclude a processing subsystem 202, a storage subsystem 204, a userinput component 206, a user output component 208, a network interface210, and a location detector 212.

Processing subsystem 202, which can be implemented as one or moreintegrated circuits (e.g., e.g., one or more single-core or multi-coremicroprocessors or microcontrollers), can control the operation ofelectronic device 115. In various embodiments, processing subsystem 202can execute a variety of programs in response to program code and canmaintain multiple concurrently executing programs or processes. At anygiven time, some or all of the program code to be executed can beresident in processing subsystem 202 and/or in storage subsystem 204.

Through suitable programming, processing subsystem 202 can providevarious functionality for electronic device 115. For example, processingsubsystem 202 can execute a map application program (or “app”) 216. Mapapp 216 can provide various functionality such as determining ageographic starting location (e.g., by detecting a current location oranalyzing user input), determining paths and points of interest withinan area surrounding the geographic starting location, and/or providingnon-visual feedback to user 105 to convey spatial information about thesurrounding area.

Map app 216 can determine the area surrounding the starting location byaccessing a maps database 218. Maps database 218 can be indexed usingand/or can include geographic coordinates and/or street addresses. Mapsdatabase 218 can, e.g., associate point or area locations with a name ofa place of interest and/or a terrain (e.g., street, grass or water).Maps database 218 can indicate locations of paths' trajectories andintersections. As used herein, a path can include a street (e.g., ahighway, freeway, city street or road), a bicycle path, apublic-transportation route, or a walking path (e.g., a sidewalk). Itwill be appreciated that disclosures herein that refer to a particulartype of a path (e.g., a street) can be extended to include other typesof paths. Maps database 218 can be based on third-party map data,developer-generated map data, and/or user-generated map data. Forexample, a user 105 can identify a geographic location and a name for apoint of interest for himself or for all users.

Storage subsystem 204 can be implemented, e.g., using disk, flashmemory, or any other storage media in any combination, and can includevolatile and/or non-volatile storage as desired. In some embodiments,storage subsystem 204 can store one or more application programs to beexecuted by processing subsystem 202 (e.g., map app 216). In someembodiments, storage subsystem 204 can store other data (e.g., used byand/or defined by map app 216), such as maps database 218. Programsand/or data can be stored in non-volatile storage and copied in whole orin part to volatile working memory during program execution.

A user interface can be provided by one or more user input components206 and one or more user output components 208. User input components206 can include a touch pad, touch screen, scroll wheel, click wheel,dial, button, switch, keypad, microphone, or the like. User outputcomponents 208 can include a speaker, headphone jack, video screen,indicator light, weighted motor capable of producing vibration output,or the like, together with supporting electronics (e.g.,digital-to-analog or analog-to-digital converters, signal processors, orthe like). A user can operate input components 206 to invoke thefunctionality of electronic device 115 and can receive (e.g., view, hearand/or feel) output from electronic device 115 via output components208.

Network interface 210 can provide voice and/or data communicationcapability for electronic device 115. In some embodiments networkinterface 210 can include radio frequency (RF) transceiver componentsfor accessing wireless voice and/or data networks (e.g., using cellulartelephone technology, advanced data network technology such as 3G, 4G orEDGE, WiFi (IEEE 802.11 family standards), or other mobile communicationtechnologies, or any combination thereof), and/or other components. Insome embodiments network interface 210 can provide wired networkconnectivity (e.g., Ethernet) in addition to or instead of a wirelessinterface. Network interface 210 can be implemented using a combinationof hardware (e.g., antennas, modulators/demodulators, encoders/decoders,and other analog and/or digital signal processing circuits) and softwarecomponents.

Location detector 212 can detect a past or current location ofelectronic device 115. For example, location detector 212 can include aGlobal Positioning Satellite (GPS) receiver that receives GPS signalsidentifying GPS satellites, a cell-tower detector that detects whichcell tower or cell towers are carrying cellular communicationsassociated with electronic device 115, and/or a WiFi detector thatdetects WiFi access points. Location detector 212 can estimate adistance between electronic device 115 and GPS satellites, cell towersand/or WiFi access points. Using the estimated distances and locationsof the GPS satellites, cell towers and/or WiFi access points, locationdetector 212 can then estimate a position of electronic device 115. Theestimated location can include, e.g., geographic coordinates or anaddress (e.g., a street number, street name, city and/or state).

Disclosures herein can refer to electronic device 115 as if it iscapable of executing map app 216 by itself. It will be appreciated that,in some embodiments, electronic device 115 communicates with a remoteserver during an execution of map app 216 via network interface 210. Theremote server can, e.g., process user inputs and/or can include mapsdatabase 218 (e.g., in addition to or instead of locally storing mapsdatabase 218 at electronic device 115).

It will be appreciated that electronic device 115 described herein isillustrative and that variations and modifications are possible. Forexample, electronic device can have other capabilities not specificallydescribed herein (e.g., telephonic capabilities, power management,accessory connectivity, etc.). In a system with multiple electronicdevices 115, different electronic devices 115 can have different sets ofcapabilities; the various electronic devices 115 can be but need not besimilar or identical to each other.

Further, while electronic device 115 is described with reference toparticular blocks, it is to be understood that these blocks are definedfor convenience of description and are not intended to imply aparticular physical arrangement of component parts. Further, the blocksneed not correspond to physically distinct components. Blocks can beconfigured to perform various operations, e.g., by programming aprocessor or providing appropriate control circuitry, and various blocksmight or might not be reconfigurable depending on how the initialconfiguration is obtained. Embodiments of the present invention can berealized in a variety of apparatus including electronic devicesimplemented using any combination of circuitry and software.Additionally, while electronic device 115 is described as singularentities, it is to be understood that each can include multiple coupledentities.

FIG. 3 is a flow diagram of a process 300 for using an electronic deviceto non-visually convey map data to a user according to an embodiment ofthe present invention. Process 300 can be implemented, e.g., inelectronic device 115.

At block 305, input can be received from user 105 (e.g., via user inputcomponent 206). The input can include, e.g., opening map app 216,requesting a map to be rendered, entering a starting location, orrequesting that a current location be detected. In some instances, theinput can (e.g., additionally or alternatively) include a designation ofan input-space starting point that user 105 wants to be associated witha geographic starting location. For example, user 105 can touch a screenof electronic device 115. As another example, user 105 can click on amouse of electronic device 115.

At block 310, a geographic starting location can be determined. Thestarting location can include a current location of electronic device115. The current location can be determined, e.g., via location detector212, which can detect signals associated with GPS satellites, WiFiaccess points and/or cell towers that are relatively near electronicdevice 115 compared to other GPS satellites, WiFi access points and/orcell towers. The starting location can include a location identified byuser 105 (e.g., via input received at block 305). For example, user 105can speak an address (e.g., “1255 First Street, San Diego, Calif.”). Theaudio signal from the user can be decoded to identify the address, andthe address (or corresponding geographic coordinates) can be equated tothe starting location. As another example, user 105 can speak a locationtype (“coffee shop”), e.g., at block 305. The audio signal can bedecoded to identify the message, and one or more nearby locationsmatching the location type can be determined. In some instances, user105 can select among multiple identified locations after multiple nearbylocations are identified (e.g., audibly), and the selected location (orcorresponding coordinates) is used as the starting location. In someembodiments, the user can specify a destination location in addition toor instead of a starting location.

At block 315, electronic map data can be accessed. The accessed map datacan include data within maps database 218. The accessed data cancorrespond to an area near and/or surrounding the starting location. Insome instances, the accessed data corresponds to an area between thestarting location and a geographic destination location (e.g.,identified by user 105). The accessed map data can indicate, e.g.,absolute and/or relative locations of paths, points of interest andterrains. A geographic size corresponding to the accessed map data candepend on, e.g., default or set zoom parameters and/or a distancebetween the starting location and a destination location. For example, adefault setting can indicate that the map data is to include datacorresponding to a 1- by 2-mile rectangle centered on the startinglocation.

The accessed map data can include data not specific to user 105 and/ordata that is specific to user 105. For example, a user 105 can indicate(via electronic device) that a particular address corresponds to “Home”,or a learning algorithm within map app 216 can learn that anotheraddress corresponds to “Work”. These addresses can be associated withthe respective names specifically for user 105 and/or electronic device115.

A map including some or all of the accessed electronic map data can berendered on a touch screen. In some instances, a centering or offset ofthe rendered map can be determined based on a default parameter orsetting. For example, the map can be rendered such that a startinglocation is routinely presented at a fixed input-space point (e.g., acenter of the rendered map). In some instances, a centering or offset ofthe rendered map depends on dynamic user input. For example, a user cantouch the touch screen (e.g., at block 305), and an input-space pointdefined based on the user's touch can be associated with the startingpoint.

At block 320, an input-space point can be determined. In some instances,the input-space point can be determined based on a default parameter ora setting (e.g., a default setting or user setting) that defines a fixedinput-space point to be associated with starting locations. For example,starting locations can be consistently associated with an input-spacepoint at a center of a display. In some instances, the input-space pointcan be determined based on the input received at block 305. For example,the input-space point can be defined based on, e.g., a screen locationtouched by user 105 or a cursor's position when user 105 clicked amouse.

At block 325, the input-space point can be associated with thegeographic starting location. Thus, in some instances, geographicstarting locations can be associated with a single (and, e.g., fixed)input-space point. In some instances, no matter where a user touches ascreen, that input-space point can be associated with the startinglocation.

At block 330, a street near the geographic starting location can beidentified. The street can include, e.g., a street of the startinglocation (e.g., “First Street” when the starting location is “e.g.,“1255 First Street, San Diego, Calif.”). In some instances, arelationship between the street and the starting location is alsoidentified. For example, the identified street can include a streetintersecting with a street of the starting location and a distancebetween the starting location and the intersection (e.g., “Broadwayintersection in 0.3 miles”). As another example, the identified streetcan include a nearest street or cross street and a distance between thestarting location and the nearest street (e.g., “Garden Street 0.1 milessouth” when a user is in a nearby park).

At block 340, audio output can be provided that identifies the street.The audio output can include, e.g., a name of the street, a distance(e.g., a directional distance) to the street, and/or a direction of thestreet (e.g., “First Street—running North to South). The audio outputcan include words or non-word output (e.g., an audio signal indicatingthat a map has been generated based on a current location).

FIG. 4A illustrates an example of a map 405 that can be displayed duringoperation of map app 216 in accordance with process 300 according to anembodiment of the invention. User 105 can open map app 216 and/orrequest that map app 216 render a map near a current location.Electronic device 115 can determine a current location of electronicdevice 115 and define a starting location as the current location. Thecurrent location can be identified to user 105, e.g., via an audiosignal 125 a provided via a speaker 120 of electronic device 115.

A map 405 can be generated to identify paths and points of interest nearthe current location. Map 405 can be presented on a screen of electronicdevice 115. Map 405 can be scaled, such that a relatively largegeographic area is represented using a smaller input space (e.g.,corresponding to a screen size). While map app 216 can be tailoredtowards users with visual impairments, such users can still have somevisual capabilities. Further, some non-visually impaired people can alsouse map app 216. Thus, providing some visual information be helpful.Visual properties of map 405 (e.g., borders, colors, and/or linethicknesses) can be tailored to improve the probability that a visuallyimpaired user can distinguish features of map 405.

Map 405 can include a current-location marking 408 that visuallyidentifies the current location. Current-location marking 408 can beroutinely positioned at a default position (e.g., a screen center). Insome instances, user 105 can adjust the default position and/or can movemap 405 such that current-location marking 408 is also moved away fromthe default position.

Map 405 includes a set of paths 410, such as highways, city streets androads. Each path 410 can be associated with a name and a trajectory.Path trajectories can indicate where a first path intersects with otherpaths. In FIG. 4A, each path 410 is surrounded by a dark border toimprove the visibility of the path.

Map 405 can further include points of interest 415. Some points ofinterest 415 can be initially apparent on the map 405 (e.g., visuallyrepresented, such as green patches for parks) and/or non-visuallyidentified to user 105 upon satisfaction of a location-based criterion.Other points of interest 415 require that a user search for the point ofinterest before it is visually or non-visually identified (e.g.,identifying “Joe's coffee house” only after a user searches for “coffeeshops”). As will be further detailed below, user 105 can interact withmap 405 (via electronic device 115) in order to understand spatialproperties of an area surrounding him.

User 105 can touch a point in the map. The point can be defined based onan input-space point. A geographic location associated with theinput-space point can be identified to the user, e.g., via audio signal125 a.

FIG. 4B illustrates another example of a map 405 that can be displayedduring operation of map app 216 in accordance with process 300 accordingto an embodiment of the invention. In this instance, the startinglocation is not associated with a fixed or default input-space point.Rather, the input-space point associated with the starting location isdetermined based on real-time user input.

User 105 can touch a screen of electronic device 115 at a screenposition 408 a. Upon detecting the touch, electronic device 115 candetermine a current location of electronic device 115 and define astarting location as the current location. The current location can beidentified to user 105, e.g., via an audio signal 125 b provided via aspeaker 120 of electronic device 115. The touched portion of the screencan be associated with the starting location, and a map 405 can begenerated to identify paths and points of interest near the currentlocation.

It will be appreciated that process 300 and the illustration provided inFIGS. 4A-4B are exemplary and that modifications are contemplated. Forexample, a current location can be repeatedly detected irrespective of auser's input, and a starting location can be determined based on a mostrecently determined current location. As another example, the audiooutput can include information other than identifying a nearby street(e.g., a nearby point of interest or geographic coordinates).

Once a map has been displayed, a user can interact with the map, e.g.,by tracing a finger along a path, such as a road. FIG. 5 is a flowdiagram of a process 500 for using an electronic device to non-visuallyand interactively convey map data to a user according to an embodimentof the present invention. Process 300 can be implemented, e.g., inelectronic device 115.

At block 505, an input trajectory can be received from user 105interacting with map app 216. For example, user 105 can slide his fingerfrom a first point on a screen of electronic device 215 (which can beshowing a map such as map 405 shown in FIGS. 4A-4B.) to a second pointon the screen.

At block 510, an input-space trajectory corresponding to the inputtrajectory can be determined. For example, each point along a screen ofelectronic device 215 can be defined as an input-space point (e.g., withan origin point being located at a center or corner of the screen). Theinput-space trajectory can include, e.g., a set of input-space points ora formula characterizing the input-space trajectory.

At block 515, the input-space trajectory can be associated with ageographic trajectory based on a currently presented map. In oneinstance, the input-space trajectory is associated with a geographictrajectory including geographic coordinates. For example, an input-spacetrajectory including a set of input-space points can be associated witha set of geographic coordinates.

The geographic trajectory can be determined, e.g., based on scalingand/or offset factors associated with a presented map 405. In someinstances, the geographic trajectory is defined to begin at a geographicstarting location, and one or more scaling factors are applied tomovements within the input-space trajectory to determine subsequentpoints along the geographic trajectory.

At block 520, characteristics of the geographic trajectory can bedetermined. The determined characteristics can include a directionand/or magnitude associated with the geographic trajectory. Thedetermined characteristics can include characteristics tied to a pathand/or point of interest. For example, the determined characteristicscan indicate whether the geographic trajectory is continuing along apath, veering away from a path, and/or nearing a point of interest.

At block 525, audio output indicative of the geographic-trajectorycharacteristics can be provided. The audio output can include, e.g., adirection, a distance (e.g., “2 miles from starting location” or “1 mileSoutheast from home”), a name of a street (“approaching Broadway”), aname of a point of interest (“pool on your left”), and/or an indicationas to whether the geographic trajectory is following another trajectory(e.g., of a path or route between locations). The audio output caninclude words or non-word output. For example, electronic device 115 canproduce an audio signal that mimics or evokes the sound of footsteps asthe user movers his finger, and the pitch or frequency of that sound canindicate an extent to which an input trajectory is following atrajectory of a path or route and/or can convey a speed at which theuser is drawing the trajectory (e.g., faster steps being associated withfast input trajectories).

FIGS. 6 and 7 illustrate examples of a map 405 that can be displayedduring operation of map app 216 in accordance with process 500 accordingto an embodiment of the invention. In FIG. 6, user 105 has moved hisfinger upwards from screen position 408 a (shown in FIG. 4) to screenposition 408 b (shown in FIG. 6). In FIG. 7, user 105 has moved hisfinger upwards and to the right from screen position 408 a (shown inFIG. 4) to screen position 408 c (shown in FIG. 7). Each movement candefine an input-space trajectory (from a first point associated withscreen position 408 a to a second point associated with screen position408 b or a third point associated with screen position 408 c).

The input-space trajectory can be associated with a geographictrajectory. In FIG. 6, for example, the input-space trajectorycorresponds to an upward movement along De Anza Boulevard. Assuming thatthe upwards direction corresponds to northward movement, the input-spacetrajectory corresponds to northward movement along De Anza Boulevard.The motion could also be associated with a distance (e.g., a 0.2 milenorthward movement along De Anza Boulevard).

As user 105 moves along the input trajectory (and thus along a virtualgeographic trajectory), new paths and points of interest become nearby.Therefore, upcoming intersections, nearby paths and nearby points ofinterest can be determined based on a point (e.g., a current point) inthe input trajectory and/or a direction of the trajectory (to determinea direction associated with “upcoming” locations). In some instances, anupcoming intersection is automatically announced (e.g., when theintersection becomes less than a threshold distance away from a currentpoint). In some instances, an upcoming intersection is announced afterdetecting particular input. The input can include verbal orgesture-based input. For example, a user can be tracking a north-southroad. The user can quickly flick his finger (e.g., generally or in aparticular direction). After detecting the input, an intersection can beidentified (e.g., a next intersection along the road in a currenttracking direction or a next intersection along the road in a directionassociated with the flicking input). The identified intersection can beannounced to a user. In some instances, a user can continue to flick hisfinger, such that other intersections are subsequently announced. Thus,a user can navigate through a web of connected streets by usingdirectional gestures (e.g., flicking up for an identification of anupward intersection, flicking left for an identification of a leftwardintersection, etc.).

Characteristics of the geographic trajectory can be identified to user105, e.g., via an audio signal 125 provided via a speaker 120 ofelectronic device 115. For example, in FIG. 6, an audio signal 125 cindicates that the input trajectory is associated with a northwardmovement. Further, audio signal 125 c identifies an upcomingintersection. Specifically, audio signal 125 c indicates that theintersection with Rodrigues Avenue is 0.1 mile away. The 0.1 mile can bedetermined by associating an input space for map 405 with a geographicspace and associating screen position 408 b with an input-space point.In one instance, streets within map 405 can be associated withinput-space points, and an input-space distance between an upcomingstreet and an input-space point can be converted to a geographicdistance. In another instance, the input-space point associated withscreen position 408 b can be converted to a geographic point, streetscan further be associated with geographic points, and a distance betweenan upcoming street and the geographic point associated with the screenposition 408 b can be determined.

Audio signal 125 can include non-word sounds. In FIG. 6, audio signal125 c includes a clicking sound that clicks at a 1-Hertz frequency.Characteristics of the click (e.g., a particular sound, pitch and/orfrequency) can indicate, e.g., a speed associated with the inputtrajectory, a terrain associated with a position along a trajectory,and/or whether the input trajectory is tracking a trajectory of a path.For example, a sound of footsteps on concrete can be used when an inputpoint coincides with a road, a sound of footsteps splashing throughwater can be used when an input point coincides with water terrain, asound of footsteps through grass can be used when an input pointcoincides with a park, and a sound of footsteps in a building can beused when an input point coincides with a building. In FIG. 6, the clicksound and frequency can indicate that the input trajectory issuccessfully tracking De Anza Boulevard, such that the finger of user105 remains on this path as it moves.

Properties of non-word sounds (e.g., pitch and frequency) can bydynamically and/or continuously adjusted based on a user's instantaneousinteraction with the app and/or based on a user's past interactions withthe app. In some instances, properties are adjusted such thattransitions between sounds with different properties are smoothed. Forexample, if a user is tracking a road but starts moving into a park, aclick sound can be produced by mixing a first sound of footsteps onconcrete with a second sound of footsteps on grass. The contribution ofthe first sound relative to the second sound can depend on how far theuser has departed from the road. In some instances, properties ofnon-word sounds depend on a user's distance or interaction with aparticular feature being tracked. For example, if a user is tracking aroad, sound properties can be adjusted based on how far the user'stracking departs from the road.

FIG. 7 illustrates an instance in which the input trajectory is nottracking De Anza Boulevard. Specifically, user 105 began (at location408 a) on De Anza Boulevard and subsequently moved up and right.Meanwhile, De Anza Boulevard runs up and down, not right. Thus, screenposition 408 c is to the right of De Anza Boulevard. Audio output canprovide feedback identifying this result. For example, an audio signal125 d, in FIG. 7, can indicate that user 105 is veering east from DeAnza Boulevard using spoken words. Additionally, a change in the click'ssound, pitch and/or frequency can indicate a similar result. Forexample, the click sound can be indicative of a terrain. In FIG. 7, theclick sound is muffled (unlike FIG. 6), which can convey that user 105is no longer “on” a road. Further, the click frequency is reduced. Theclick frequency can, e.g., indicate an extent to which a user istracking a road. Thus, a user can attempt to follow a road by attemptingto maintain a desired type of audio signal (e.g., attempting to maintaina strong-click signal at a relatively high frequency).

Once a map has been displayed, a user can also interact with the map torequest identification of nearby points of interest. FIG. 8 is a flowdiagram of a process 800 for using an electronic device to non-visuallyconvey map data to a user according to an embodiment of the presentinvention. Process 800 can be implemented, e.g., in electronic device115.

At block 805, a surrounding-request input from user 105 can be received.The surrounding-request input can indicate that user 105 is requestinginformation about points of interest surrounding and/or near a centrallocation. The input can include, e.g., a tap on a screen of electronicdevice 115 or a keystroke.

At block 810, the central location can be determined. The centrallocation can include an input-space location or a geographic location.The central location can include a current location of electronic device115, a location recently entered by user 105, or a location associatedwith the input. For example, a map can be generated and presented on ascreen of electronic device 115. A user can tap on the screen, and thetap can be associated with a geographic central location based on themap.

At block 815, points of interest near the central location can beidentified. The points of interest can include non-commercial and/orcommercial locations, such as parks, pools, city attractions, hospitals,airports, public-transportation stops, universities, schools,restaurants, or stores. The points of interest can be user-specific ofgeneral across users. For example, map app 216 can determine or learnthat user 105 likes to learn about locations of coffee shops and Italianrestaurants. Thus, these types of points of interested can bepreferentially identified to user 105. Preferential identification caninclude, e.g., identifying locations within an expanded radius oridentifying the locations first relative to other points of interest.

At block 820, audio output that identifies the nearby points of interestcan be provided to user 105. For each point of interest, the audiooutput can indicate, e.g., its name, absolute location (e.g., streetaddress), and/or relative location (e.g., from the central location).Points of interest can be presented in an order dependent on, e.g., adistance separating the point of interest from the central location, thetype of point of interest, a popularity of the point of interest, and/ora preferential identification associated with the point of interest.

FIG. 9 illustrates an example of operation of map app 216 to identifynearby points of interest in accordance with process 800 according to anembodiment of the invention. User 105 can tap a screen of electronicdevice 115 at a screen position 408 d. Upon detecting the tap,electronic device 115 can determine that user 105 is requestinginformation about points of interest surrounding a central location.

In this instance, the central location can be defined as a currentlocation of electronic device 115. The current location of electronicdevice 115 can further be associated with an input-space pointassociated with the tap. Thus, map 405 can be generated by associatingthe input-space point with a geographic location of the current locationand determining streets and points of interest in an area around thegeographic location of the current location.

In FIG. 9, the central location is near a point of interest 415 that isa pool. An audio signal 125 e is thus provided to inform user 105 of thenearby pool. In this instance, the name of the pool and a distanceseparating user 105 from the point of interest is further identified.

In some instances, map app 216 can operate in a tour-guide mode. In thismode, user 105 can move his finger along an input-space trajectory, andelectronic device 115 can repeatedly and/or continuously identify pointsof interest (and, in some instances, paths) near a geographic locationassociated with a current input-space point along the trajectory.

FIG. 10 is a flow diagram of a process 1000 for using an electronicdevice to non-visually convey directions between geographic locations toa user according to an embodiment of the present invention. Process 1000can be implemented, e.g., in electronic device 115.

At block 1005, a location-based query can be received from user 105. Forexample, user 105 can speak the query, a microphone within electronicdevice 115 can detect the speech, and a speech detector can determinethe spoken words. The location-based query can include a specificaddress or type of location (e.g., “deli”).

At block 1010, a starting location can be determined. The startinglocation can include, e.g., a current location of electronic device 115or a location identified by user 105 (e.g., “Going from Home to 415Walnut Street”).

At block 1015, input can be received from user 105. The input caninclude, e.g., touching a screen of electronic device 115. The input canindicate that a user would like for directions to be provided at acurrent time and/or that a location associated with the input (e.g., atouched location on a screen or cursor position) is to be associatedwith the starting location.

At block 1020, an origination input-space point can be determined basedon the input and can be associated with the starting location. Forexample, the origination input-space point can correspond to a point ona screen touched by user 105.

At block 1025, a geographic destination location responsive to thelocation-based query can be determined. For example, if a useridentifies an address, a geographic location (e.g., geographiccoordinates) associated with the address can be equated to thegeographic destination location. In some instances, a user identifies atype of location. Thus, block 1025 can include determining nearbylocations of the identified type. If multiple locations of theidentified type are identified, a single destination location can be,e.g., automatically selected by electronic device 115 (e.g., selectingthe closest location) or the multiple locations can be presented to user105 such that he can choose the destination location.

At block 1030, the geographic destination location can be associatedwith a destination input-space point. The destination input-space pointcan be determined based on the origination input-space point, adirectional distance between the origination input-space point and thedestination input-space point and/or a size of a screen of device 115.

At block 1035, directions can be determined. The directions can includedirections between the origination input-space point and the destinationinput-space point and/or directions between the geographic startinglocation and the geographic destination location. The directions can bedetermined based on a map from map database 218. The directions caninclude, e.g., directions for a vehicle, public-transportationdirections or pedestrian directions. The directions can include streetnames, distances, and turning directions.

At block 1040, audio output identifying the directions can be provided.In some instances, all directions are immediately provided. In someinstances, directions are successively provided as user 105 moves hisfinger along a screen of device 115. Thus, a single direction (e.g.,“Move south 1.5 miles”) can be provided a time, and the directions canbe adjusted if a user strays from a route. In some instances, thedirections are successively provided as a user 105 physically moves.Thus, a user's location can be repeatedly tracked and directions can beadjusted based on his current location.

In some instances, the directions can be stored. A user 105 can then beable to repeatedly access the directions to hear them in part or intheir entirety. In some instances, a geographic destination locationidentified in response to a search query is stored. User 105 can namethe stored location and can specifically recall the location (e.g., togenerate directions from a new starting location), or the storedlocation can be identified as a new and/or preferential point ofinterest.

FIGS. 11A-11B illustrate an example of using map app 216 to non-visuallyconvey directions in accordance with process 1000 according to anembodiment of the invention. User 105 can input a search query, which inthis instance was “movie theater”. For example, user 105 can speak thequery into a microphone of electronic device 115, and a speech-detectioncomponent can detect the speech and identify the spoken words. The wordscan then appear within a search-query box 420.

User 105 can touch a screen of device 115 at a screen location 408 e.Upon detecting the touch, electronic device 115 can determine a currentlocation of electronic device 115. The current location can beassociated with an input-space point associated with screen location 408e. A geographic starting location can also be equated to the currentlocation.

Device 115 can search for nearby movie theaters. The closest theater canbe identified to user 105, e.g., via an audio signal 125 provided byspeaker 120. In this instance, an AMC theater is 2.2 miles from acurrent location. Map 405 can be generated such that both the startinglocation and the identified AMC-theater location can be presented. Theidentified AMC-theater location can be represented by a visual icon,such as a star 425. In some instances, map 405 is generated in order tootherwise increase or maximize an input-space distance between thestarting location and the identified location.

Device 115 can determine directions between the starting location andthe identified AMC-theater location. In this instance, both geographicdirections and input-space directions are determined. Thus, device 115can audibly indicate geographic directions, and user 105 can alsoattempt to follow the directions on the map using feedback based oninput-space directions. For example, an audio signal 125 f can identifya first direction of “Move 1 mile south on De Anza Boulevard.” User 105can thus move his finger down a screen of device 115. As shown in FIG.11B, upon detecting that the user has completed the input-spaceequivalent of the one-mile movement, an audio signal 125 g can directthe user to stop, turn West and travel 1.2 miles along Alves Drive.Thus, a user can familiarize himself with a route and can compare routesto different locations.

A user can interact with a displayed map by adjusting map presentationcharacteristics, e.g., by zooming into or out of the map, rotating themap or translationally moving the move. FIG. 12 is a flow diagram of aprocess 1200 for using an electronic device to adjust a map presentedvia map app 216 based on user input according to an embodiment of thepresent invention. Process 1200 can be implemented, e.g., in electronicdevice 115.

At block 1205, map-adjusting input can be received from user 105. Themap-adjusting input can include a voice command or a gesture command.For example, the map-adjusting input can include a voice command to“Rotate map”, to “Scroll map upwards”, or to “Zoom in on map”. In someinstances, the map-adjusting input can include input received via atouchscreen. For example, the map-adjusting input can include rotationinput, in which a user rapidly rotates his finger in a small clockwiseor counterclockwise circle. The map-adjusting input can include touchinput received from one or multiple fingers, such as one or two fingerstouching a screen and moving closer together, moving further apart,moving up in tandem, or moving down in tandem.

At block 1210, it can be determined how to adjust a map based on themap-adjusting input. The map can include a map generated, e.g., based onprevious user input. For example, the map can include a map generated todisplay a current location of electronic device 115, points of interestsurrounding a starting location, or a starting and ending locationdetermined based on a search query.

The determination can be based on the type of input received and/orother input characteristics (e.g., spoken magnitudes or magnitudes ofinputs). For example, a verbal instruction to “rotate map” can beassociated with a clockwise rotation of a map, or touchscreen clockwiserotation input can be associated with a clockwise rotation of the map. Averbal instruction to “zoom out of map” or an input in which two fingerstouch the screen and move closer together can be associated with zoomingout of the map. A verbal instruction to “move northward on map” or aninput in which one or two fingers touch the screen and move downwards intandem could be associated with moving the map downwards (e.g., suchthat a top portion of a screen displays portions of the map notpreviously visible).

In some instances, each map-adjusting input is associated with a definedadjustment magnitude. For example, each rotation input can be associatedwith a 90-degree rotation, or each zoom input could be associated with adefined step (e.g., to move to a next zoom value along a discrete scaleor to scale a current zoom by a fixed value). Thus, e.g., a user canachieve a dramatic adjustment by repeating the map-adjusting input. Insome instances, inputs can indicate an adjustment magnitude. Forexample, a verbal input could indicate “move map upwards by 2 miles” or“move map upwards by 4 steps”, or fast or large touchscreen inputs canbe associated with strong map adjustments.

At block 1215, the map can be adjusted in accordance with thedetermination. At block 1220, audio output can be provided to identifythe map adjustment. The audio output can include word or non-word audiooutput. For example, the audio output can include a pitch slide, swishsound or verbal recount of the adjustment. The audio output can alsoinclude geographic characteristics about the map, as adjusted, such asstreets located physically above a starting point in the input space,points of interest within a new field of view, or a number of streetswithin a new field of view.

FIGS. 13A-13B illustrate an example of an adjustment of a map that canbe made during operation of map app 216 in accordance with process 1200according to an embodiment of the invention. User 105 can touch a screenof device 115 rotate his finger in a clockwise direction (or speak averbal rotation command, such as “Rotate map clockwise”). Upon detectingthe input, electronic device 115 can adjust map 405 such that it isrotated 90 degrees in a clockwise direction. The adjustment can beidentified to user 105, e.g., via an audio signal 125 h provided via aspeaker 120 of electronic device 115, as illustrated in FIG. 13A.

FIG. 13B shows a map 405′ following the rotation. In the original map405, De Anza Boulevard was above the user's finger. In the adjusted map405′, Alves Drive (previously to the left of the user's finger) is abovethe user's finger. An audio signal 125 i can include a sound effect thatindicates that the map has been rotated and can identify a street“ahead” in the adjusted map 405. By using the rotation input, a user canquickly identify streets at an intersection and can adjust the map toorient in a direction intuitive to the user (e.g., based on a directionthat user 105 is currently facing).

In some embodiments, other events can precipitate map adjustments. Theother events can even include a lack of action. For example, after auser virtually arrives at an intersection (e.g., such that theintersection is announced), if the user pauses at the intersection(e.g., such that no new finger movements or oral commands are made),this pause can result in a map rotation. For example, an audio outputcan announce an intersection (e.g., “At intersection with Main Street,east-west road”), can announce map-adjustment instructions (e.g., “Pauseto start tracking Main Street”), and can respond to a user's respectiveactions accordingly (e.g., following a pause, announcing “Now trackingMain Street”). In some instances, tracking a new street can also cause amap rotation, such that the newly tracked street is oriented in aparticular direction (e.g., oriented vertically on a screen). Forexample, in some instances, the map rotation shown in FIGS. 13A-13B canoccur following a user's pause at the intersection rather than followinga user's rotation input. In some instances, a new street can be tracked,and a map orientation can remain unchanged.

In some instances, a device can be automatically tracked, and a map appcan serve as a tour guide, identifying nearby geographical features(e.g., streets, intersections or locations of interest). FIG. 14 is aflow diagram of a process 1400 for using an electronic device toautomatically and repeatedly track a device and identify nearbygeographical features. Process 1400 can be implemented, e.g., inelectronic device 115. Process 1400 can be automatically performed orperformed after a user has requested a function associated with process1400 (e.g., after a user has selected a “tour guide” mode).

At block 1405, a device's location, velocity and orientation can bedetected. The location, velocity and orientation can be detected, e.g.,based on measurements collected by location detector 212 and/or one ormore other sensors in the device (e.g., a compass and/or accelerometer).

At block 1410, a determination can be made as to whether the velocityexceeds a threshold. The threshold can be set to a value that indicatesthat the device is likely in a moving vehicle if the threshold isexceeded (e.g., 5, 10 or 20 miles per hour).

If the threshold is not exceeded, at block 1415, a forward direction canbe defined based on the detected orientation of the device (e.g., adirection that a vector extending from a bottom to a top of a device ispointing). Thus, e.g., a user can point a device towards geographicalfeatures interest. The direction can include a two- or three-dimensionaldirection. A two-directional direction can ignore an elevation-relatedcomponent of the direction.

If the threshold is not exceeded, at block 1420, a forward direction canbe defined based on the detected velocity of the device (e.g., adirection of a detected velocity vector). Therefore, e.g., if a user isin a moving vehicle, it can be assumed that the user is interested ingeographical features in front of the vehicle irrespective of directionthat the user is facing or that the device is facing. As specificillustrations, if a user is sitting sideways on a bus or if a userplaces a device sideways on a passenger seat while driving, the forwarddirection will continue to be defined based on the direction of movementof the vehicle.

At block 1420, nearby geographical features in the forward direction canbe identified. The geographical features can include streets,intersections, and/or locations of interest. In some instances, a usercan set a type of geographical feature (e.g., intersections,restaurants, or attractions) to be identified. The geographical featurescan be identified by projecting a location based on the device'slocation and the forward direction. The projected location can include apoint location, a set of point locations, a range of locations or anarea. Geographical features at the projected location can be identifiedbased on a cached map, providing for efficient identifications.

The projected location can include a location that is a projectiondistance from the detected device's location (along the forwarddirection) or locations within projection distance range (defined by aminimum projection distance and a maximum projection distance) from thedetected device's location (along the forward direction). It will beappreciated that the projected location can also include locations notdirectly along the forward direction; an orthogonal distance can definehow far a projected location can extend in a direction orthogonal to theforward direction, or a projected-location radius can define a radiusaround a projected location to be considered. A projection distance, aminimum projection distance, a maximum projection distance, anorthogonal distance and/or a projected-location radius can be fixed ordynamic. In some dynamic instances, the distance can, e.g., depend onthe detected device's velocity, such that larger distances are definedwhen the device is moving at faster speeds. In some dynamic instances,the distance can, e.g., depend on whether geographical features areidentified at a first projected location; if not, the projected locationcan be moved or extended.

At block 1425, an audio output identifying the geographical features canbe provided. In some instances, audio output is only provided ifgeographical features are identified as being at a projected location,at projected location. Process 1400 can then return to block 1405. Theprocess can be continuously repeated or repeated at regular intervals.It will be appreciated that forward-direction definitions can changeupon repetitions of process 1400. For example, if a device is in a taxithat it driving above the threshold speed, the forward direction can bedefined based on the velocity. However, subsequently, if the taxi isstopped at a red light, the forward direction can be defined based onthe device orientation. Thus, a user can at this point aim the devicearound an intersection to gain familiarity of his surroundings. Theprocess can terminate, e.g., when a user exits a mode corresponding toprocess 1400.

Process 1400 shows an instance in which a forward-direction definitionis conditioned upon a velocity-analysis determination performed at block1410. It will be appreciated that, in some instances, differentconditions can be implemented (e.g., defining the forward directionbased on orientation based on whether a change in the device'sorientation exceeded a threshold) or that the condition can beeliminated (e.g., always defining the forward direction based on thedevice's orientation or always defining the forward direction based onthe device's velocity).

It will be appreciated that disclosures provided herein are exemplaryand various modifications are contemplated. For example, disclosuresthat refer to audio outputs can be adapted to include other types ofoutputs suitable for visually impaired users. Alternative outputs caninclude vibration cues or pronounced visual feedback. As anotherexample, disclosures that refer to inputs of a particular type can beadapted to include other types of inputs. Verbal inputs or gesture-basedinputs can be used instead of touch-based inputs, and gesture-based ortouch-based inputs can be used instead of verbal inputs. Disclosuresherein that refer to inputs received directly at an electronic devicecan be extended to include inputs received via an accessory connected tothe electronic device (e.g., a keyboard connected to a tablet computer).

Further, disclosures herein can be applied to indoor environments aswell as outdoor environments. For example, a map could identify offices,rooms (e.g., conference rooms, or auditoriums), and restrooms within anoffice building, or a map could identify stores, shops, and restroomswithin a shopping mall. Paths can include hallways, e.g., connectingstores or connecting rooms. Points of interest can include specificstores, meeting rooms, elevators, escalators, or restrooms. Thus, e.g.,if a user can touch a map of a shopping mall, and an input-space pointcan be determined based on the where the user touched the map. A storepoint-of-interest associated with the input-space point or near theinput-space point can be identified to the user.

Embodiments described herein can provide, via an electronic device, aninteractive map accessible to visually impaired users. The map can bebased on a starting location defined as current location of theelectronic device or on a location entered by the user. Nearby paths,nearby points of interest, or directions from the starting location toan ending location can be identified via audio output. Users can touch ascreen of the electronic device in order to virtually explore aneighborhood. A user can be alerted, e.g., by audio feedback, when he ismoving along or straying from a path, approaching an intersection orpoint of interest, or changing terrains. Thus, the user can familiarizehimself with city-level spatial relationships without needing tophysically explore unfamiliar surroundings.

Portions of the description can refer to particular user interfaces,such as touchscreen displays. Other embodiments can use differentinterfaces. For example, a user interface can be voice-based, with theuser speaking instructions into a microphone or other audio input deviceand the device providing an audible response (e.g., using synthesizedspeech or pre-recorded audio clips). A combination of voice-based andvisual interface elements can be used, and in some embodiments, multipledifferent types of interfaces can be supported, with the user having theoption to select a desired interface, to use multiple interfaces incombination (e.g., reading information from the screen and speakinginstructions) and/or to switch between different interfaces. Any desiredform of user interaction with a device can be supported.

Embodiments of the present invention can be realized using anycombination of dedicated components and/or programmable processorsand/or other programmable devices. The various processes describedherein can be implemented on the same processor or different processorsin any combination. Accordingly, where components are described as beingconfigured to perform certain operations, such configuration can beaccomplished, e.g., by designing electronic circuits to perform theoperation, by programming programmable electronic circuits (such asmicroprocessors) to perform the operation, or any combination thereofProcesses can communicate using a variety of techniques including butnot limited to conventional techniques for interprocess communication,and different pairs of processes can use different techniques, or thesame pair of processes can use different techniques at different times.Further, while the embodiments described above can make reference tospecific hardware and software components, those skilled in the art willappreciate that different combinations of hardware and/or softwarecomponents can also be used and that particular operations described asbeing implemented in hardware might also be implemented in software orvice versa.

Computer programs incorporating various features of the presentinvention can be encoded and stored on various computer readable storagemedia; suitable media include magnetic disk or tape, optical storagemedia such as compact disk (CD) or DVD (digital versatile disk), flashmemory, and other non-transitory media. Computer readable media encodedwith the program code can be packaged with a compatible electronicdevice, or the program code can be provided separately from electronicdevices (e.g., via Internet download or as a separately packagedcomputer-readable storage medium).

Thus, although the invention has been described with respect to specificembodiments, it will be appreciated that the invention is intended tocover all modifications and equivalents within the scope of thefollowing claims.

What is claimed is:
 1. A method for providing non-visual outputsindicating geographical features to a user, the method performed at anelectronic device with one or more sensors and one or more outputcomponents, the method comprising: receiving an input selecting a modeof operation of the electronic device other than a mode for providingdirections to a destination location; while the electronic device is inthe selected mode of operation: determining, using the one or moresensors, a forward direction of motion of the electronic device;identifying nearby geographical features that the electronic device ismoving toward based on the determined forward direction of motion of theelectronic device; and providing, via the one or more output componentsof the electronic device, non-visual outputs that identify the nearbygeographical features that the electronic device is moving toward,without providing non-visual outputs that identify nearby geographicalfeatures that the electronic device is moving away from.
 2. The methodof claim 1, wherein the non-visual outputs include a haptic output. 3.The method of claim 1, wherein the non-visual outputs include an audiooutput.
 4. The method of claim 1, wherein the forward direction is basedon velocity of the electronic device.
 5. The method of claim 1, whereindetermining the forward direction of the electronic device includes:determining a velocity of the electronic device; and in accordance witha determination that the velocity does not exceed a threshold,determining the forward direction based on an orientation of theelectronic device.
 6. The method of claim 5, wherein the orientation ofthe electronic device is a direction from a bottom to a top of theelectronic device in its normal configuration.
 7. The method of claim 1,wherein the forward direction is based on a direction of movement of theelectronic device irrespective of an orientation of the electronicdevice.
 8. The method of claim 1, wherein identifying the nearbygeographical features includes: determining a geographic location of theelectronic device; and searching for the nearby geographical featuresnear the geographic location of the electronic device.
 9. The method ofclaim 1, wherein identifying the nearby geographical features includesdetermining a projected location where the electronic device will beafter a predetermined time based on a current location of the electronicdevice and the forward direction.
 10. The method of claim 9, wherein theprojected location includes a point, a set of locations, a range oflocations, or an area.
 11. The method of claim 9, further comprisingidentifying geographical features at the projected location based on acached map that includes the projected location.
 12. The method of claim9, wherein the projected location includes a location that is a distancefrom the current location of the electronic device in the forwarddirection.
 13. The method of claim 9, wherein the projected locationincludes locations within a projected distance range between a minimumprojected distance and a maximum projected distance from the currentlocation of the electronic device in the forward direction.
 14. Themethod of claim 9, wherein the projected location includes locations inthe forward direction and within an orthogonal distance threshold of theforward direction.
 15. The method of claim 9, wherein the projectedlocation includes locations in the forward direction within aprojected-location radius from the forward direction.
 16. The method ofclaim 9, wherein the projected location is dynamically determined basedon a velocity of the electronic device.
 17. The method of claim 9,further comprising automatically expanding the projected location inaccordance with a determination that no geographical features areidentified near the projected location.
 18. The method of claim 1,wherein the electronic device is located in an indoor environment.
 19. Anon-transitory computer readable storage medium storing one or moreprograms, the one or more programs comprising instructions that, whenexecuted by an electronic device with one or more sensors and one ormore output components, cause the device to: receive an input selectinga mode of operation of the electronic device other than a mode forproviding directions to a destination location; while the electronicdevice is in the selected mode of operation: determine, using the one ormore sensors, a forward direction of motion of the electronic device;identify nearby geographical features that the electronic device ismoving toward based on the determined forward direction of motion of theelectronic device; and provide, via the one or more output components ofthe electronic device, non- visual outputs that identify the nearbygeographical features that the electronic device is moving toward,without providing non-visual outputs that identify nearby geographicalfeatures that the electronic device is moving away from.
 20. Anelectronic device, comprising: one or more sensors; one or more outputcomponents; one or more processors; memory; and one or more programs,wherein the one or more programs are stored in the memory and configuredto be executed by the one or more processors, the one or more programsincluding instructions for: receiving an input selecting a mode ofoperation of the electronic device other than a mode for providingdirections to a destination location; while the electronic device is inthe selected mode of operation: determining, using the one or moresensors, a forward direction of motion of the electronic device;identifying nearby geographical features that the electronic device ismoving toward based on the determined forward direction of motion of theelectronic device; and providing, via the one or more output componentsof the electronic device, non-visual outputs that identify the nearbygeographical features that the electronic device is moving toward,without providing non-visual outputs that identify nearby geographicalfeatures that the electronic device is moving away from.
 21. A methodfor providing non-visual outputs indicating geographical features to auser, the method performed at an electronic device with one or moresensors and one or more output components, the method comprising:receiving an input selecting a mode of operation of the electronicdevice other than a mode for providing directions to a destinationlocation; while the electronic device is in the selected mode ofoperation: determining, using the one or more sensors, a forwarddirection of the electronic device; identifying nearby geographicalfeatures; and providing, via the one or more output components of theelectronic device, non-visual outputs that identify nearby geographicalfeatures in only the forward direction.
 22. The non-transitory computerreadable storage medium of claim 19, wherein the non-visual outputsinclude a haptic output.
 23. The non-transitory computer readablestorage medium of claim 19, wherein the non-visual outputs include anaudio output.
 24. The non-transitory computer readable storage medium ofclaim 19, wherein the forward direction is based on velocity of theelectronic device.
 25. The non-transitory computer readable storagemedium of claim 19, wherein determining the forward direction of theelectronic device includes: determining a velocity of the electronicdevice; and in accordance with a determination that the velocity doesnot exceed a threshold, determining the forward direction based on anorientation of the electronic device.
 26. The non-transitory computerreadable storage medium of claim 25, wherein the orientation of theelectronic device is a direction from a bottom to a top of theelectronic device in its normal configuration.
 27. The non-transitorycomputer readable storage medium of claim 19, wherein the forwarddirection is based on a direction of movement of the electronic deviceirrespective of an orientation of the electronic device.
 28. Thenon-transitory computer readable storage medium of claim 19, whereinidentifying the nearby geographical features includes: determining ageographic location of the electronic device; and searching for thenearby geographical features near the geographic location of theelectronic device.
 29. The non-transitory computer readable storagemedium of claim 19, wherein identifying the nearby geographical featuresincludes determining a projected location where the electronic devicewill be after a predetermined time based on a current location of theelectronic device and the forward direction.
 30. The non-transitorycomputer readable storage medium of claim 29, wherein the projectedlocation includes a point, a set of locations, a range of locations, oran area.
 31. The non-transitory computer readable storage medium ofclaim 29, wherein the one or more programs further comprise instructionsthat, when executed by the electronic device, cause the device toidentify geographical features at the projected location based on acached map that includes the projected location.
 32. The non-transitorycomputer readable storage medium of claim 29, wherein the projectedlocation includes a location that is a distance from the currentlocation of the electronic device in the forward direction.
 33. Thenon-transitory computer readable storage medium of claim 29, wherein theprojected location includes locations within a projected distance rangebetween a minimum projected distance and a maximum projected distancefrom the current location of the electronic device in the forwarddirection.
 34. The non-transitory computer readable storage medium ofclaim 29, wherein the projected location includes locations in theforward direction and within an orthogonal distance threshold of theforward direction.
 35. The non-transitory computer readable storagemedium of claim 29, wherein the projected location includes locations inthe forward direction within a projected-location radius from theforward direction.
 36. The non-transitory computer readable storagemedium of claim 29, wherein the projected location is dynamicallydetermined based on a velocity of the electronic device.
 37. Thenon-transitory computer readable storage medium of claim 29, wherein theone or more programs further comprise instructions that, when executedby the electronic device, cause the device to automatically expand theprojected location in accordance with a determination that nogeographical features are identified near the projected location. 38.The non-transitory computer readable storage medium of claim 19, whereinthe electronic device is located in an indoor environment.
 39. Thedevice of claim 20, wherein the non-visual outputs include a hapticoutput.
 40. The device of claim 20, wherein the non-visual outputsinclude an audio output.
 41. The device of claim 20, wherein the forwarddirection is based on velocity of the electronic device.
 42. The deviceof claim 20, wherein determining the forward direction of the electronicdevice includes: determining a velocity of the electronic device; and inaccordance with a determination that the velocity does not exceed athreshold, determining the forward direction based on an orientation ofthe electronic device.
 43. The device of claim 42, wherein theorientation of the electronic device is a direction from a bottom to atop of the electronic device in its normal configuration.
 44. The deviceof claim 20, wherein the forward direction is based on a direction ofmovement of the electronic device irrespective of an orientation of theelectronic device.
 45. The device of claim 20, wherein identifying thenearby geographical features includes: determining a geographic locationof the electronic device; and searching for the nearby geographicalfeatures near the geographic location of the electronic device.
 46. Thedevice of claim 20, wherein identifying the nearby geographical featuresincludes determining a projected location where the electronic devicewill be after a predetermined time based on a current location of theelectronic device and the forward direction.
 47. The device of claim 46,wherein the projected location includes a point, a set of locations, arange of locations, or an area.
 48. The device of claim 46, wherein theone or more programs further comprise instructions for identifyinggeographical features at the projected location based on a cached mapthat includes the projected location.
 49. The device of claim 46,wherein the projected location includes a location that is a distancefrom the current location of the electronic device in the forwarddirection.
 50. The device of claim 46, wherein the projected locationincludes locations within a projected distance range between a minimumprojected distance and a maximum projected distance from the currentlocation of the electronic device in the forward direction.
 51. Thedevice of claim 46, wherein the projected location includes locations inthe forward direction and within an orthogonal distance threshold of theforward direction.
 52. The device of claim 46, wherein the projectedlocation includes locations in the forward direction within aprojected-location radius from the forward direction.
 53. The device ofclaim 46, wherein the projected location is dynamically determined basedon a velocity of the electronic device.
 54. The device of claim 46,wherein the one or more programs further comprise instructions forautomatically expanding the projected location in accordance with adetermination that no geographical features are identified near theprojected location.
 55. The device of claim 20, wherein the electronicdevice is located in an indoor environment.
 56. The method of claim 21,wherein the non-visual outputs include a haptic output.
 57. The methodof claim 21, wherein the non-visual outputs include an audio output. 58.The method of claim 21, wherein the forward direction is based onvelocity of the electronic device.
 59. The method of claim 21, whereindetermining the forward direction of the electronic device includes:determining a velocity of the electronic device; and in accordance witha determination that the velocity does not exceed a threshold,determining the forward direction based on an orientation of theelectronic device.
 60. The method of claim 59, wherein the orientationof the electronic device is a direction from a bottom to a top of theelectronic device in its normal configuration.
 61. The method of claim21, wherein the forward direction is based on a direction of movement ofthe electronic device irrespective of an orientation of the electronicdevice.
 62. The method of claim 21, wherein identifying the nearbygeographical features includes: determining a geographic location of theelectronic device; and searching for the nearby geographical featuresnear the geographic location of the electronic device.
 63. The method ofclaim 21, further comprising identifying the nearby geographicalfeatures in the forward direction by determining a projected locationwhere the electronic device will be after a predetermined time based ona current location of the electronic device and the forward direction.64. The method of claim 63, wherein the projected location includes apoint, a set of locations, a range of locations, or an area.
 65. Themethod of claim 63, further comprising identifying geographical featuresat the projected location based on a cached map that includes theprojected location.
 66. The method of claim 63, wherein the projectedlocation includes a location that is a distance from the currentlocation of the electronic device in the forward direction.
 67. Themethod of claim 63, wherein the projected location includes locationswithin a projected distance range between a minimum projected distanceand a maximum projected distance from the current location of theelectronic device in the forward direction.
 68. The method of claim 63,wherein the projected location includes locations in the forwarddirection and within an orthogonal distance threshold of the forwarddirection.
 69. The method of claim 63, wherein the projected locationincludes locations in the forward direction within a projected-locationradius from the forward direction.
 70. The method of claim 63, whereinthe projected location is dynamically determined based on a velocity ofthe electronic device.
 71. The method of claim 63, further comprisingautomatically expanding the projected location in accordance with adetermination that no geographical features are identified near theprojected location.
 72. The method of claim 21, wherein the electronicdevice is located in an indoor environment.